The cathode-ray tube is, of course, an analog device capable of displaying in a continuous fashion the data supplied to its electron guns and its deflection plates and governing respectively the intensity and the location of the illuminated spots which together constitute the display on the face of the cathode-ray tube. The intensity of the spots is a function of the voltages on the electron guns, while the location of the spots is a function of the voltage differences on the respective pairs of deflection plates. Although the cathode-ray tube is inherently capable of presenting a continuous display controlled by the aforementioned respective voltages, the computer circuitry which usually generates those voltages is digital in nature and hence produces discrete and discontinuous bits of data. Those bits of data are assembled in a large-capacity contiguous memory element called a "frame buffer." The frame buffer maintains available for "accessing" a large amount of address, intensity, and often color data. These data are arranged in the form of a matrix of memory cells, each of which represents the address, intensity, and possibly the color of a certain small elementary portion of the image to be displayed on the face of the cathode-ray tube. In view of the digital nature of the data so assembled in the frame buffer or similar memory element, the corresponding locations on the face of the cathode-ray tube may be considered as a "raster" of horizontal lines and vertical columns. At the intersection of each such horizontal line and vertical column of the raster, we may visualize a small element of area on the face of the cathode-ray tube called a picture element or "pixel." Thus, it becomes possible to employ the data stored in the frame buffer to control the address, intensity and color of each of the pixels included within the raster of the image on the face of the cathode-ray tube. In employing the digital data stored in the frame buffer to control the address, intensity, and color of each pixel, it is first necessary to convert the aforementioned data from digital form into analog form. This conversion is generally performed by a device known as a "digital-to-analog-converter." In the case of a color display, there is generally one digital-to-analog-converter ("DAC") for each of the primary colors (red, green, and blue) which are necessary in defining the color of every pixel to be displayed.
In some applications of computer graphics, it is not necessary to have a full-color display as produced by a cathode-ray tube having an electron gun for each of the aforementioned primary colors. For these applications, a single electron gun may suffice for the purposes of the display. If desired, the intensity of each illuminated spot on the face of the cathode-ray tube may still be controlled by supplying a modulated voltage to the single electron gun of the cathode-ray tube. An arrangement of this type permits the generation of a display having portions which are fully illuminated, other portions which are not illuminated at all, and still further portions which are illuminated to some controllable degree, thereby generating on the screen of the cathode-ray tube pixel images in shades of gray somewhere between black and white.
A still further variation, which may be satisfactory in some elementary applications, requires only that each pixel in the image on the face of the cathode-ray tube be either "on" or "off," i.e., that the pixel be either illuminated or not illuminated, as the case may be, in accordance with data derived from the frame buffer.
In the last-mentioned application, the data requirements for each pixel of image are very simple--only one bit of digital data is required in order to specify whether a pixel is to be activated or not activated. On the other hand, if various shades of gray between white and black are required in the presentation of pixels forming the image on the face of the cathode-ray tube, the data requirements may be as much as eight bits per pixel to be displayed. This amount of data permits display of a so-called "gray-scale" comprising 2.sup.8 (or 256) shades of gray.
One early computer-graphics system had a display which was in color, but the colors were drawn from a very limited "palette" of 16 possible hues. As in the case of the "gray scale," this system required eight bits of data for each pixel to be displayed.
An improved display, called "Chroma Vision Plus," required eight bits of digital data for each of the primary colors to be included in the resultant color characterizing each pixel to be displayed. Since eight bits were required for each of the primary colors, the total requirement of "Chroma Vision Plus" was 24 bits of digital data. This improvement, for the "high end" of the market, enabled the presentation of a color image in which each pixel could have a composite hue selected from a total of more than 16 million possibilities (2.sup.24).
In a computer-graphics electronic circuit, the computation of address, intensity and color data for each pixel to be displayed is usually performed in a microprocessor under the control of a program memory which is specially designed for that purpose. The microprocessor may be part of the "color-graphics board," which is a supplement to the computer. Alternatively, the microprocessor may be part of the central processing unit of the computer itself if the available time of the "CPU" microprocessor is sufficient for the purpose of specifying the intensity and color of individual pixels of the display. Conventionally, the address and color data developed by the microprocessor are furnished to a sub-assembly which may be called a "pixel-memory controller." The pixel-memory controller performs any further operations that are necessary to prepare the outputs of the microprocessor for entry in the frame buffer. The improvements in accordance with the present invention relate principally to a "pixel-data controller," i.e., all circuitry interposed between the frame buffer and the color circuitry (the "color-look-up table.")
Prior to the present invention, there has not been any pixel-data controller which efficiently implements the provision and selection of an appropriate number of bits of data to fulfill--but not overfulfill--the requirements of different types of display device. There have been various "jerry-built" assemblages of discrete semiconductor components that have enabled a choice to be made among different levels of address and color data that could be developed by a microprocessor. However, these prior-art approaches to the problem have been complex in design and expensive to manufacture, and have not embodied a single integrated circuit capable of selecting the data necessary to satisfy the requirements of the particular display device to be employed. In short, there has been no single "elegant" means for selecting the data that are immediately needed and for maintaining available the data which are not immediately needed but which will later be required. Until now, the difficulties of design, the expense of manufacture, and the power requirements of prior-art approaches to this problem have all been discouragingly high.